package com.starmark.gateway.log.access.entity;


import com.starmark.core.actable.annotation.Column;
import com.starmark.core.framework.base.BaseModel;
import lombok.Data;

import java.util.Objects;

/**
 * <p>
 * 系统访问日志
 * </p>
 *
 * @author starmark
 * @since 2018-12-15
 */
@Data
public class GatewayAccessLog extends BaseModel {


    /**
     * URL地址
     */

    private String url;


    /**
     * 请求头
     */
    @Column(length = 2000)
    private String requestHeaders;
    /**
     * 访问IP
     */

    private String clientIp;
    /**
     * 请求方法
     */

    private String requestMethod;
    /**
     * 请求参数
     */
    @Column(type = "text")
    private String requestParams;

    /**
     * 返回结果
     */
    @Column(type = "text")
    private String responseResult;
    /**
     * 返回状态
     */

    private String responseStatus;

    /**
     * 耗费时间
     */
    private long costTime;


    public long getCostTime() {
        if (Objects.equals(this.costTime, 0L)) {
            this.costTime = this.endTime - this.startTime;

        }
        return this.costTime;
    }

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 开始时间
     */
    private long startTime;

    /**
     * 结束时间
     */
    private long endTime;

    /**
     * 工程编码
     */
    private String projectCode;

    /**
     * 重写URL
     */
    private String redirectUrl;
}
